# 一个文件就是模块是一个工具包，文件名就是模块名
# 模块提供的工具有：全局变量、函数、类
# 导入模块并取别名别名大驼峰命名
# 导入时先搜索当前工作目录再搜索python所在系统目录，所以取名不要和python系统工具重名
# python文件导入后所有代码(包括无用代码)都会被导入，类似print、测试代码这种可以直接执行的代码导入后会直接执行
# 模块导入顺序：官方标准模块、第三方模块、应用程序模块
import 模块.测试模块1 as CatModule
import 模块.测试模块2 as DogModule
import random

# 使用__file__查看导入工具所在目录
print(random.__file__)

# 使用from 模块名 import 工具，使用时不再添加模块名
# 如果模块中有相同函数，后导入的会覆盖前导入的
# 如果两个模块确实有相同的函数名可以取别名然后取别名
from 模块.测试模块3 import Person
from 模块.测试模块3 import demo1
from 模块.测试模块3 import demo2 as module3_demo2

# 导入模块全部工具,和import ...一样都是全部导入但是这种方法导入的工具使用时不需要添加模块名
# 不建议使用，如果导入的模块有重名工具不好排错
from 模块.测试模块3 import *

# 模块.测试模块2.say()
# 模块.测试模块1.say()

d = DogModule.Dog()
c = CatModule.Cat()
print(d)
print(c)
p = Person()
print(p)
demo1()
module3_demo2()

